package operand

// boolVal is the wrapped boolean value.
type boolVal struct {
	Int
}

// Bool create a boolean value.
func Bool(val bool) Value {
	if val {
		return &boolVal{Int: 1}
	}
	return &boolVal{Int: 0}
}

func (s *boolVal) Eq(other any) bool {
	return s.Bool() == other
}

func (s *boolVal) String() string {
	if s.Int == 0 {
		return "false"
	}
	return "true"
}
